header{
	package practpl.tres;
	
}

/////////////////////////////// 
// Analizador sintáctico 
/////////////////////////////// 
class Anasint extends Parser; 
	options{
		importVocab=Analex;
	}
	{
		private boolean fallo = false;
		public boolean Detectafallo(){return fallo;}
	}
	
	//entrada : FOR { System.out.println("entrada"); } EOF; 
	//entrada : (asignacion|asignacion2)* EOF { System.out.println("entrada");};
	entrada : (asignacion|asignacion2)* EOF {fallo = true;}; 
	asignacion : (IDENT OPERADOR auxiliar SEPARADOR)|bucle;
	asignacion2: SET DOLAR IDENT OPERADOR auxiliar SEPARADOR (IF PARENTA DOLAR IDENT PARENTC LLAVEA IDENT OPERADOR auxiliar SEPARADOR LLAVEC)?;
	bucle: (FOR|WHILE) (PARENTA DOLAR IDENT PARENTC)(LLAVEA IDENT OPERADOR auxiliar SEPARADOR LLAVEC);
	//bucle: BUC; 
	auxiliar: (NUMERO|BOOLEANO|RUTA|TEXTO);
//	entrada2 : { System.out.println("entrada"); } FOR  EOF;
	entrada2:(asig|asig2)* EOF; 
	asig : (IDENT OPERADOR auxiliar)| bucle2;
	asig2: SET DOLAR IDENT OPERADOR auxiliar (IF PARENTA DOLAR IDENT PARENTC LLAVEA IDENT OPERADOR auxiliar LLAVEC)?;
	bucle2: (FOR | WHILE) PARENTA DOLAR IDENT PARENTC LLAVEA IDENT OPERADOR auxiliar LLAVEC;
	 